package _case

import (
	"io"
	"log"
	"os"
	"path"
)

func CopyDirToDir() {
	list := GetFile(sourceDir)
	for _, f := range list {
		//返回路径的最后一部分作为文件名，剩余部分作为目录路径
		_, name := path.Split(f)
		destFileName := destDir + "copy/" + name
		_, err := copyFile(f, destFileName)
		if err != nil {
			log.Println(err)
		}
	}
}

func copyFile(src, dst string) (int64, error) {
	s, err := os.Open(src)
	if err != nil {
		log.Fatal(err)
	}
	//关闭源文件句柄
	defer s.Close()
	//打开目标文件。如果文件不存在，则创建它。
	//os.O_WRONLY 表示以写模式打开文件，
	//os.O_CREATE 表示如果文件不存在则创建文件。
	//0666 是文件权限，表示所有用户对文件有读写权限
	f, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE, 0666)
	if err != nil {
		log.Fatal(err)
	}
	//关闭源文件句柄
	defer f.Close()
	return io.Copy(f, s)
}
